package com.ruoyi.factorydata.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.factorydata.domain.WorkOrderProcessInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 工单工序数据Mapper接口
 *
 * @author ruoyi
 * @date 2025-08-06
 */
public interface WorkOrderProcessInfoMapper extends BaseMapper<WorkOrderProcessInfo> {
    /**
     * 查询工单工序数据
     *
     * @param id 工单工序数据主键
     * @return 工单工序数据
     */
    public WorkOrderProcessInfo selectWorkOrderProcessInfoById(Long id);

    /**
     * 查询工单工序数据列表
     *
     * @param workOrderProcessInfo 工单工序数据
     * @return 工单工序数据集合
     */
    public List<WorkOrderProcessInfo> selectWorkOrderProcessInfoList(WorkOrderProcessInfo workOrderProcessInfo);

    /**
     * 新增工单工序数据
     *
     * @param workOrderProcessInfo 工单工序数据
     * @return 结果
     */
    public int insertWorkOrderProcessInfo(WorkOrderProcessInfo workOrderProcessInfo);

    /**
     * 修改工单工序数据
     *
     * @param workOrderProcessInfo 工单工序数据
     * @return 结果
     */
    public int updateWorkOrderProcessInfo(WorkOrderProcessInfo workOrderProcessInfo);

    /**
     * 删除工单工序数据
     *
     * @param id 工单工序数据主键
     * @return 结果
     */
    public int deleteWorkOrderProcessInfoById(Long id);

    /**
     * 批量删除工单工序数据
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteWorkOrderProcessInfoByIds(Long[] ids);

    /**
     * 工单工序数据完成
     * @param workOrderId 工单id
     * @param processId 工序id
     */
    void finishWorkOrderProcess(@Param("workOrderId") Long workOrderId, @Param("processId")Long processId);

    /**
     * 工单工序数据转移
     * @param workOrderId 工单id
     * @param processId 工序id
     */
    void transferProcessOwner(@Param("workOrderId") Long workOrderId,@Param("processId") Long processId,@Param("processOwnerId") Long processOwnerId);
}